package cn.com.blueInfo.bpm.number.enums;

import cn.com.blueInfo.bpm.common.enums.BaseEnum;
import com.fasterxml.jackson.annotation.JsonCreator;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 组成部分类型
 * @author suxch
 * @since 2025/8/31 21:41
 */
@Getter
@AllArgsConstructor
public enum NumberRuleComponentType implements BaseEnum<String> {

    /** 组成部分类型-固定字符 */
    FIXED("FIXED", "固定字符"),
    /** 组成部分类型-日期 */
    DATE("DATE", "日期"),
    /** 组成部分类型-流水号 */
    SERIAL("SERIAL", "流水号"),
    /** 组成部分类型-组织编码 */
    ORG_CODE("ORG_CODE", "组织编码"),
    /** 组成部分类型-员工编码 */
    USER_CODE("USER_CODE", "员工编码");

    private final String code;
    private final String desc;

    public static NumberRuleComponentType getByCode(String code) {
        return BaseEnum.getByCode(NumberRuleComponentType.class, code);
    }

    @JsonCreator
    public static NumberRuleComponentType getByName(String name) {
        return BaseEnum.getByName(name, NumberRuleComponentType.class);
    }

}
